package ec.edu.cec.java.adv.archivos;

import java.io.*;
import java.util.*;

public class CopyTextFile {

    @SuppressWarnings({ "static-access", "resource" })
	public static void main(String args[]) {
        //... Get two file names from use.
        
        Scanner in = new Scanner(System.in);
        //... Create File objects.
        System.out.println("Ingrese la ruta completa del archivo origen: ");
        File inFile  = new File(in.next());  // File to read from.
        System.out.println("Ingrese la ruta completa del archivo destino: ");
        File outFile = new File(in.next());  // File to write to

        //... Enclose in try..catch because of possible io exceptions.
        try {
            copyFile(inFile, outFile);
            ReadFile lector = new ReadFile();
            lector.readFile(outFile);

        } catch (IOException e) {
            System.err.println(e);
            System.exit(1);
        }
    }


    //=============================================================== copyFile
    // Uses BufferedReader for file input.
    public static void copyFile(File fromFile, File toFile) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader(fromFile));
        BufferedWriter writer = new BufferedWriter(new FileWriter(toFile));

        //... Loop as long as there are input lines.
        String line = null;
        while ((line=reader.readLine()) != null) {
            writer.write(line);
            writer.newLine();   // Write system dependent end of line.
        }

        //... Close reader and writer.
        reader.close();  // Close to unlock.
        writer.close();  // Close to unlock and flush to disk.
    }


    //=============================================================== copyFile2
    // Uses Scanner for file input.
    public static void copyFile2(File fromFile, File toFile) throws IOException {
        Scanner freader = new Scanner(fromFile);
        BufferedWriter writer = new BufferedWriter(new FileWriter(toFile));

        //... Loop as long as there are input lines.
        String line = null;
        while (freader.hasNextLine()) {
            line = freader.nextLine();
            writer.write(line);
            writer.newLine();   // Write system dependent end of line.
        }

        //... Close reader and writer.
        freader.close();  // Close to unlock.
        writer.close();  // Close to unlock and flush to disk.
    }
}